package com.itheima.anno;

import com.itheima.validation.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;



import java.lang.annotation.*;

@Documented // 元注解，表示该注解会被包含在javadoc中
// Target注解表示该注解可以用在哪些地方，ElementType.METHOD表示可以用在方法上
@Target({ ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {StateValidation.class}) // 指定校验逻辑处理类
public @interface State {
    // 提供校验失败后的提示信息
    String message() default "{com.itheima.anno.State.message: state参数的值只能是已发布或者草稿}";

    // 指定分组
    Class<?>[] groups() default {};

    // 负载  获取到State注解的附加信息
    Class<? extends Payload>[] payload() default {};
}
